home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / GFXFX2.ZIP / PLASMA1.PAS < prev    next >
Pascal/Delphi Source File  |  1995-02-14  |  1KB  |  39 lines

  1.  
  2. program plasma; { PLASMA1.PAS}
  3. { Pascal/Mode-x version of Plasma, by Bas van Gaalen }
  4. uses u_vga,u_mdx,u_pal,u_kb;
  5. var stab1,stab2:array[0..255] of byte; x,y:word; i1,i2,j1,j2,c:byte;
  6. begin
  7.   mdx_setmodex(mdx_320x200,320);
  8.   asm mov dx,03d4h; mov ax,4609h; out dx,ax; end;
  9.   for x:=0 to 63 do begin
  10.     setrgb(x,x div 4,x div 2,x);
  11.     setrgb(127-x,x div 4,x div 2,x);
  12.     setrgb(127+x,x,x div 4,x div 2);
  13.     setrgb(254-x,x,x div 4,x div 2);
  14.   end;
  15.   for x:=0 to 255 do begin
  16.     stab1[x]:=round(sin(2*pi*x/255)*128)+128;
  17.     stab2[x]:=round(cos(2*pi*x/255)*128)+128;
  18.   end;
  19.   i1:=50; j1:=90; mdx_ofs:=0;
  20.   repeat
  21.     vretrace;
  22.     setborder(80);
  23.     mdx_ofs:=16000-mdx_ofs;
  24.     mdx_setaddress(mdx_ofs);
  25.     inc(i1,-1);
  26.     inc(j1,2);
  27.     for y:=0 to 56 do begin
  28.       i2:=stab1[(y+i1) mod 255];
  29.       j2:=stab1[j1 mod 255];
  30.       for x:=0 to 79 do begin
  31.         c:=stab1[(x+i2) mod 255]+stab2[(y+j2) mod 255];
  32.         mem[u_vidseg:mdx_ofs+y*80+x]:=c mod 255;
  33.       end;
  34.     end;
  35.     setborder(0);
  36.   until keypressed;
  37.   setvideo(u_lm);
  38. end.
  39.